package com.topnav.mc.admin.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.topnav.mc.entity.base.BaseEntity;
import lombok.Data;

@Data
//@TableName("mc_device_log")

//@Entity
@TableName("mc_device_log")
//@javax.persistence.Table(name = "mc_device_log")
//@org.hibernate.annotations.Table(appliesTo = "mc_device_log", comment = "设备上下线日志")

public class DeviceLog extends BaseEntity {

    private Long deviceId;//设备ID
    private String deviceCode;

    /**
     *  1 上线
     *  0 下线
     */
    private Integer action;

    private String longitude;

    private String latitude;

    private String CoordinateSystem;

    private Integer onlineMin; //在线分钟数

    //是否已同步
    private Boolean synch=false;


    /**
     CascadeType.REMOVE
     Cascade remove operation，级联删除操作。
     删除当前实体时，与它有映射关系的实体也会跟着被删除。
     CascadeType.MERGE
     Cascade merge operation，级联更新（合并）操作。
     当Student中的数据改变，会相应地更新Course中的数据。
     CascadeType.DETACH
     Cascade detach operation，级联脱管/游离操作。
     如果你要删除一个实体，但是它有外键无法删除，你就需要这个级联权限了。它会撤销所有相关的外键关联。
     CascadeType.REFRESH
     Cascade refresh operation，级联刷新操作。
     假设场景 有一个订单,订单里面关联了许多商品,这个订单可以被很多人操作,那么这个时候A对此订单和关联的商品进行了修改,与此同时,B也进行了相同的操作,但是B先一步比A保存了数据,那么当A保存数据的时候,就需要先刷新订单信息及关联的商品信息后,再将订单及商品保存。(来自良心会痛的评论)
     CascadeType.ALL
     Cascade all operations，清晰明确，拥有以上所有级联操作权限。

     optional属性的默认值是true。
     optional 属性实际上指定关联类与被关联类的join 查询关系，
     optional=false 时join 查询关系为inner join,
     optional=true 时join 查询关系为left join。
     */
}
